package abs.web.jsf;

import abs.dao.CompaniasDAO;
import abs.dao.GrupoProveedoresDAO;
import abs.dao.ProveedoresDAO;

import abs.domain.Companias;
import abs.domain.GrupoProveedores;
import abs.domain.Proveedores;

import abs.service.GrupoProveedoresService;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.context.annotation.Scope;

import org.springframework.stereotype.Component;

import org.springframework.transaction.annotation.Transactional;

/**
 * Spring Component that handles CRUD requests for GrupoProveedores entities
 * 
 */
@Scope("session")
@Component("GrupoProveedoresComponent")
public class GrupoProveedoresComponentImpl implements GrupoProveedoresComponent {

	/**
	 * Data type variable that provides CRUD operations for GrupoProveedores entities
	 * 
	 */
	private GrupoProveedores grupoproveedores;

	/**
	 * DAO injected by Spring that manages Companias entities
	 * 
	 */
	private Companias companias;

	/**
	 * DAO injected by Spring that manages Proveedores entities
	 * 
	 */
	private Proveedores proveedoreses;

	/**
	 * DAO injected by Spring that manages Companias entities
	 * 
	 */
	@Autowired
	private CompaniasDAO companiasDAO;

	/**
	 * DAO injected by Spring that manages GrupoProveedores entities
	 * 
	 */
	@Autowired
	private GrupoProveedoresDAO grupoProveedoresDAO;

	/**
	 * DAO injected by Spring that manages Proveedores entities
	 * 
	 */
	@Autowired
	private ProveedoresDAO proveedoresDAO;

	/**
	 * Service injected by Spring that provides CRUD operations for GrupoProveedores entities
	 * 
	 */
	@Autowired
	private GrupoProveedoresService grupoProveedoresService;

	/** 
	 */
	public GrupoProveedoresComponentImpl() {
	}

	/**
	 * Delete an existing Companias entity
	 * 
	 */
	@Transactional
	public String deleteGrupoProveedoresCompanias(String grupoproveedores_grppr100cdgo, String related_companias_co000nocia) {
		grupoproveedores = grupoProveedoresService.deleteGrupoProveedoresCompanias(grupoproveedores_grppr100cdgo, related_companias_co000nocia);

		return "/jsf/grupoproveedores/viewGrupoProveedores.xhtml";
	}

	/**
	 * Get Companias entity by GrupoProveedores
	 * 
	 */
	@Transactional
	public Companias getGrupoProveedoresCompanias(String grppr100cdgoKey) {
		return grupoProveedoresDAO.findGrupoProveedoresByPrimaryKey(grppr100cdgoKey).getCompanias();
	}

	/**
	 * Select the child Companias entity for display allowing the user to confirm that they would like to delete the entity
	 * 
	 */
	@Transactional
	public String confirmDeleteGrupoProveedoresCompanias(String grupoproveedores_grppr100cdgo, String related_companias_co000nocia) {
		companias = companiasDAO.findCompaniasByPrimaryKey(related_companias_co000nocia);

		return "/jsf/grupoproveedores/companias/deleteCompanias.xhtml";
	}

	/**
	 * Getter for variable GrupoProveedores
	 * 
	 */
	@Transactional
	public GrupoProveedores getGrupoproveedores() {
		return grupoproveedores;
	}

	/**
	 * Select the child Proveedores entity for display allowing the user to confirm that they would like to delete the entity
	 * 
	 */
	@Transactional
	public String confirmDeleteGrupoProveedoresProveedoreses(String grupoproveedores_grppr100cdgo, Integer related_proveedoreses_pr100copr) {
		proveedoreses = proveedoresDAO.findProveedoresByPrimaryKey(related_proveedoreses_pr100copr);

		return "/jsf/grupoproveedores/proveedoreses/deleteProveedoreses.xhtml";
	}

	/**
	 * Show all GrupoProveedores entities
	 * 
	 */
	@Transactional
	public List<GrupoProveedores> listGrupoProveedoress() {
		return new java.util.ArrayList<GrupoProveedores>(grupoProveedoresService.loadGrupoProveedoress());
	}

	/**
	 * Select the GrupoProveedores entity for display allowing the user to confirm that they would like to delete the entity
	 * 
	 */
	@Transactional
	public String confirmDeleteGrupoProveedores(String grppr100cdgoKey) {
		grupoproveedores = grupoProveedoresDAO.findGrupoProveedoresByPrimaryKey(grppr100cdgoKey);

		return "/jsf/grupoproveedores/deleteGrupoProveedores.xhtml";
	}

	/**
	 * Edit an existing GrupoProveedores entity
	 * 
	 */
	@Transactional
	public String editGrupoProveedores(String grppr100cdgoKey) {
		grupoproveedores = grupoProveedoresDAO.findGrupoProveedoresByPrimaryKey(grppr100cdgoKey);

		return "/jsf/grupoproveedores/editGrupoProveedores.xhtml";
	}

	/**
	 * Create a new Companias entity
	 * 
	 */
	@Transactional
	public String newGrupoProveedoresCompanias(String grupoproveedores_grppr100cdgo) {
		companias = new Companias();

		return "/jsf/grupoproveedores/companias/createCompanias.xhtml";
	}

	/**
	 * Save an existing GrupoProveedores entity
	 * 
	 */
	@Transactional
	public String saveGrupoProveedores(GrupoProveedores grupoproveedores) {
		grupoProveedoresService.saveGrupoProveedores(grupoproveedores);
		return "/jsf/grupoproveedores/listGrupoProveedoress.xhtml";
	}

	/**
	 * View an existing Proveedores entity
	 * 
	 */
	@Transactional
	public String selectGrupoProveedoresProveedoreses(String grupoproveedores_grppr100cdgo, Integer related_proveedoreses_pr100copr) {
		proveedoreses = proveedoresDAO.findProveedoresByPrimaryKey(related_proveedoreses_pr100copr, -1, -1);
		return "/jsf/grupoproveedores/proveedoreses/viewProveedoreses.xhtml";
	}

	/**
	 * Save an existing Companias entity
	 * 
	 */
	@Transactional
	public String saveGrupoProveedoresCompanias(String grupoproveedores_grppr100cdgo, Companias companias) {
		grupoproveedores = grupoProveedoresService.saveGrupoProveedoresCompanias(grupoproveedores_grppr100cdgo, companias);

		return "/jsf/grupoproveedores/viewGrupoProveedores.xhtml";
	}

	/**
	 * Delete an existing GrupoProveedores entity
	 * 
	 */
	@Transactional
	public String deleteGrupoProveedores(String grppr100cdgoKey) {
		GrupoProveedores grupoproveedores = grupoProveedoresDAO.findGrupoProveedoresByPrimaryKey(grppr100cdgoKey);
		grupoProveedoresService.deleteGrupoProveedores(grupoproveedores);
		return "/jsf/grupoproveedores/listGrupoProveedoress.xhtml";
	}

	/**
	 * View an existing Companias entity
	 * 
	 */
	@Transactional
	public String selectGrupoProveedoresCompanias(String grupoproveedores_grppr100cdgo, String related_companias_co000nocia) {
		companias = companiasDAO.findCompaniasByPrimaryKey(related_companias_co000nocia, -1, -1);
		return "/jsf/grupoproveedores/companias/viewCompanias.xhtml";
	}

	/**
	 * Edit an existing Companias entity
	 * 
	 */
	@Transactional
	public String editGrupoProveedoresCompanias(String grupoproveedores_grppr100cdgo, String related_companias_co000nocia) {
		companias = companiasDAO.findCompaniasByPrimaryKey(related_companias_co000nocia, -1, -1);
		return "/jsf/grupoproveedores/companias/editCompanias.xhtml";
	}

	/**
	 * Show all Proveedores entities by GrupoProveedores
	 * 
	 */
	@Transactional
	public List<Proveedores> listGrupoProveedoresProveedoreses(String grppr100cdgoKey) {
		return new java.util.ArrayList<Proveedores>(grupoProveedoresDAO.findGrupoProveedoresByPrimaryKey(grppr100cdgoKey).getProveedoreses());
	}

	/**
	 * Edit an existing Proveedores entity
	 * 
	 */
	@Transactional
	public String editGrupoProveedoresProveedoreses(String grupoproveedores_grppr100cdgo, Integer related_proveedoreses_pr100copr) {
		proveedoreses = proveedoresDAO.findProveedoresByPrimaryKey(related_proveedoreses_pr100copr, -1, -1);
		return "/jsf/grupoproveedores/proveedoreses/editProveedoreses.xhtml";
	}

	/**
	 * Getter for variable GrupoProveedores
	 * 
	 */
	@Transactional
	public Companias getCompanias() {
		return companias;
	}

	/**
	 * Create a new Proveedores entity
	 * 
	 */
	@Transactional
	public String newGrupoProveedoresProveedoreses(String grupoproveedores_grppr100cdgo) {
		proveedoreses = new Proveedores();

		return "/jsf/grupoproveedores/proveedoreses/createProveedoreses.xhtml";
	}

	/**
	 * Save an existing Proveedores entity
	 * 
	 */
	@Transactional
	public String saveGrupoProveedoresProveedoreses(String grupoproveedores_grppr100cdgo, Proveedores proveedores) {
		grupoproveedores = grupoProveedoresService.saveGrupoProveedoresProveedoreses(grupoproveedores_grppr100cdgo, proveedores);

		return "/jsf/grupoproveedores/viewGrupoProveedores.xhtml";
	}

	/**
	 * Getter for variable GrupoProveedores
	 * 
	 */
	@Transactional
	public Proveedores getProveedoreses() {
		return proveedoreses;
	}

	/**
	 * Select an existing GrupoProveedores entity
	 * 
	 */
	@Transactional
	public String selectGrupoProveedores(String grppr100cdgoKey) {
		grupoproveedores = grupoProveedoresDAO.findGrupoProveedoresByPrimaryKey(grppr100cdgoKey);

		return "/jsf/grupoproveedores/viewGrupoProveedores.xhtml";
	}

	/**
	 * Delete an existing Proveedores entity
	 * 
	 */
	@Transactional
	public String deleteGrupoProveedoresProveedoreses(String grupoproveedores_grppr100cdgo, Integer related_proveedoreses_pr100copr) {
		grupoproveedores = grupoProveedoresService.deleteGrupoProveedoresProveedoreses(grupoproveedores_grppr100cdgo, related_proveedoreses_pr100copr);

		return "/jsf/grupoproveedores/viewGrupoProveedores.xhtml";
	}

	/**
	 * Create a new GrupoProveedores entity
	 * 
	 */
	@Transactional
	public String newGrupoProveedores() {
		grupoproveedores = new GrupoProveedores();

		return "/jsf/grupoproveedores/createGrupoProveedores.xhtml";
	}

}
